home *** CD-ROM | disk | FTP | other *** search
- /*
- * File: CItemTable.c
- * Created: 7/25/93
- * Desc:
- *
- * Superclass: CArrayPane.
- * Uses: CItem.
- * Original Author: Atul Barve
- * Modifications: W. Wesley Monroe
- *
- * Copyright © 1993 Animas Software Production. All rights reserved.
- */
-
- #define _H_CItemTable
- #include <CTable.h>
-
- #include "CArrayPane.h"
- #include "CItem.h"
- #include "CItemList.h"
-
- #include "CTypingTask.h"
-
- #define selUseSence 16L // Other Flags are defined in CTable.h.
- #define selWholeLine 32L // Table works like it has only one col
- #define selCanDrag 64L // Can you drag from this list???
- #define selCanRecieve 128L // Can you Drop in this list
-
- enum {
- kDragInPaneOnly = 0x0001,
- kDragInWindow = 0x0002
- };
-
- class CItemTable : public CArrayPane
- {
- CItemList *fSelItems;
-
- short fDragFlag;
-
- public:
-
- CTypingTask *fTypingTask;
-
- virtual void IItemTable( CView *anEnclosure, CBureaucrat *aSupervisor,
- short aWidth, short aHeight,
- short aHEncl, short aVEncl,
- SizingOption aHSizing, SizingOption aVSizing,
- short dragFlag);
-
- void IViewTemp(CView *anEnclosure, CBureaucrat *aSupervisor, Ptr viewData);
- void SetDragFlag(short flag);
-
- void AnimateOpenClose(Cell hitCell);
- void ExpandCollaspeSelection(short expandColaspe);
- virtual void GetCellText( Cell aCell, short availableWidth, StringPtr itsText);
-
- virtual void DrawCell(Cell theCell, Rect *cellRect);
- virtual void Draw7Icon(Rect *cellRect,short indentLeft, short id, short xfer);
- virtual void TrackMouse(CMouseTask *theTask, LongPt *startPt,
- LongRect *pinRect);
-
- virtual void DrawTriangle(Rect *cellRect, short level,short id);
- virtual void Draw( Rect *area);
-
- virtual void ExpandCell(Cell theCell, short expand);
-
- // Keyboard handeling...
- virtual void DoKeyDown(char theChar, Byte keyCode, EventRecord *macEvent);
- virtual void DoTyping(char theChar);
- virtual void SelectMatchingText(char *buff);
-
- // Mouse Handeling
- virtual CMouseTask *MakeMouseTask(short modifiers);
- virtual Boolean GetCanRecieve(void);
- Boolean ItemCanAcceptDrop(Cell hitCell, CItemList *selectedItems);
-
-
- // Hiliting...
- virtual void Hilite(Rect *cells, Boolean hiliteFlag);
- virtual void DeselectRect(Rect *deselectRect, Boolean redraw);
- virtual void HiliteCellRegion(RgnHandle cellRgn, Boolean fHilite);
- virtual CItemList *GetHiliteRgn(RgnHandle *rgnHdl);
- virtual Boolean HitInDrag(Cell aCell);
-
- virtual Boolean HasSelection(void);
-
- virtual CItem *GetItem(short row);
- virtual void GetCellRect( Cell theCell, register LongRect *cellRect);
-
- virtual void DeleteSelectedItems(void);
- virtual Boolean DropedSameParent(short dropCell, CItem *theItem);
- virtual void RemoveSubviews(CItemList *selectedItems);
- virtual void GraftItems(CItem *parent, CItemList *selectedItems);
- virtual void AddItemToRoot(CItem *itemToGraft);
- virtual void CreateTextEnvironment(void);
- };
-
- // Change interface...
- enum {
-
- itemTableItemAdded = tableLastChange + 1,
- itemTableItemRemoved,
- itemTableItemExpanded,
- itemTableItemMoved,
- itemTableLastChange = itemTableItemMoved
- };
-
-